var Cadastro  = 
{
    arquivo: null,
    init: function()
    {
        Cadastro.eventPlusAssunto();
        Cadastro.eventPlusAutor();
        Cadastro.eventSubmit();
        Cadastro.cancelaModal();
        Cadastro.arquivoSubmit();
        Cadastro.autoCopletAssunto();
        Cadastro.autoCopletAutor();
        Cadastro.eventBlockView();
        Cadastro.eventMinus();
        Cadastro.eventChangeSelect();
    },
    eventPlusAssunto: function()
    {
        $("#plusAssunto").click(function()
        {            
            labePlus = ($(this).parent().parent());
            assunto = $(".assunto" , labePlus);
            val = $(assunto).val();
            $(assunto).val("");                       
            $("#more_assunto").prepend('\
                                    <div class="lineForm">\n\
                                        <label class="left_colum">\n\
                                        </label>\n\
                                        <label class="rigth_colum">\n\
                                            <input type="text" autocomplete="on" disabled="true" class="assunto" name="assunto" value="'+val+'" />\n\
                                        </label>\n\
                                        <a href="#"><span class="minus">-</span></a></div>');            
            //Cadastro.autoCopletAssunto();
            return false;
        });        
    },
    eventPlusAutor: function()
    {
        $("#plusAutor").click(function()
        {                                
            labePlus = ($(this).parent().parent());
            autor = $(".autor" , labePlus);
            val = $(autor).val();
            $(autor).val("");                                      
            $("#more_autor").prepend('<div class="lineForm">\n\
                                    <label class="left_colum"></label>\n\
                                    <label class="rigth_colum">\n\
                                            <input type="text" autocomplete="on" disabled="true" class="autor" name="autor" value="'+val+'" />\n\
                                    </label>\n\
                                    <a href="#"><span class="minus">-</span></a>\n\
                                </div>');            
            //Cadastro.autoCopletAutor();
            return false;
        });        
    },
    eventSubmit: function()
    {
        $("#cadastroLivro").submit(function()
        {
            //limpar erros
            $(".erro").remove();
            $(".inputTextErro").each(function(){
                $(this).removeClass("inputTextErro");                
            });           
            
            //validar campos
            arquivo = Cadastro.validForm();
            
            if(arquivo)
            {                                       
                var msg = '<p id="content_modal">';
                
                msg = msg + '<span class="destaque">Tipo:</span>' + arquivo.tipo + "<br />";
                
                msg = msg + '<span class="destaque">Titulo:</span class="destaque"> ' + arquivo.titulo + '<br />';
                
                msg = msg + '<span class="destaque">Autore(s): </span>'+ arquivo.autor[0] + '<br/>'; 
                for (i = 1; i < arquivo.autor.length; i++) 
                {
                    msg = msg + '<span class="destaque"></span>'+ arquivo.autor[i] + "<br />";
                }
                
                msg = msg + '<span class="destaque">Ano:</span> ' + arquivo.ano +'<br />';

                msg = msg + '<span class="destaque">Assunto(s): </span>'+ arquivo.assunto[0] + '<br/>'; 
                for (i = 1; i < arquivo.assunto.length; i++) 
                {
                    msg = msg + '<span class="destaque"></span>'+ arquivo.assunto[i] + "<br />";
                }                           
                
                if(arquivo.tipo == "artigo")
                {                    
                    if(arquivo.local)
                    {
                        msg = msg + '<span class="destaque">Cidade:</span> ' + arquivo.local +'<br />';
                    }
                    
                    if(arquivo.instituicao_de_ensino)
                    {                    
                        msg = msg + '<span class="destaque">Congresso:</span> ' + arquivo.instituicao_de_ensino +'<br />';
                    }                     
                }
                else if (arquivo.tipo == "tcc" || arquivo.tipo == "tese" || arquivo.tipo == "dissertacoes" )
                {
                    if(arquivo.orientador)
                    {
                        msg = msg + '<span class="destaque">Orientador:</span> ' + arquivo.orientador +'<br />';                        
                    }
                    if(arquivo.instituicao_de_ensino)
                    {
                        msg = msg + '<span class="destaque">Instituição de Ensino:</span> ' + arquivo.instituicao_de_ensino +'<br />';
                    }                
                }
                else if (arquivo.tipo == "video" || arquivo.tipo == "imagem" || arquivo.tipo == "sic" )
                {
                    if(arquivo.local)
                    {
                        msg = msg + '<span class="destaque">Local:</span> ' + arquivo.local +'<br />';
                    }                    
                }    
                                
                
                msg = msg + '<span class="destaque">Arquivo:</span>' + arquivo.file + "<br />";
                                
                Cadastro.arquivo = arquivo;
                Cadastro.launchModal(msg);
            }
            return false;
        });        
    },
    eventBlockView: function()
    {
        $("#block_view").click(function()
        {
            alert("A consulta ainda esta sendo processada");
        })  
    },
    eventMinus: function()
    {
        $(".minus").live('click',function()
        {
            div = $(this).parent().parent();
            $(div).hide("slow", function(){$(div).remove()});
            return false;
        });        
    },
    eventChangeSelect: function()
    {        
        $(".selector_type").change(function () 
        {
            //limpar erros
            $(".erro").remove();
            $(".inputTextErro").each(function(){
                $(this).removeClass("inputTextErro");                
            });           
            
            $("input[type=text][name=orientador]").val('');
            $("input[type=text][name=local]").val('');
            $("input[type=text][name=instituicao_de_ensino]").val('');
            $(".input_opt").hide();
            var opt = $(this).val();
                                   
            if(opt == "artigo")
            {                    
                $("#local .lineForm .left_colum").html("Cidade<span class='obrigatorio'>*</span>: ");
                $("#instituicao_de_ensino .lineForm .left_colum").html("Congresso<span class='obrigatorio'>*</span>: ");
                $("#local").show("slow");
                $("#instituicao_de_ensino").show("slow");
            }
            else if (opt == "tcc" || opt == "tese" || opt == "dissertacoes" )
            {                
                $("#instituicao_de_ensino .lineForm .left_colum").html("Instituição de Ensino<span class='obrigatorio'>*</span>: ");
                $("#instituicao_de_ensino").show("slow");
                $("#orientador").show("slow");
            }
            else
            {
                $("#local .lineForm .left_colum").html("Local<span class='obrigatorio'>*</span>: ");
                $("#local").show("slow");
            }                     
        }); 
    },
    validForm:function()
    {          
        var erros = 0;
        
        arquivo = new Object();        
        arquivo.titulo = $("input[type=text][name=titulo]");
        arquivo.ano = $("input[type=number][name=ano]");
        arquivo.tipo = $("#tipo");
        arquivo.assunto = new Array();
        arquivo.autor = new Array();
        c = 0;        
        $("input[type=text][name=assunto]").each(function()
        {
            if(!Cadastro.isEmpty($(this).val()))
            {                                
                if(arquivo.assunto.indexOf($(this).val()) == -1)
                {
                    arquivo.assunto[c] = $(this).val();
                    c++;
                }                
                
            } 
            
        }); 
        
        c = 0;        
        $("input[type=text][name=autor]").each(function()
        {
            if(!Cadastro.isEmpty($(this).val()))
            {                                
                if(arquivo.autor.indexOf($(this).val()) == -1)
                {
                    arquivo.autor[c] = $(this).val();
                    c++;
                }                
            }             
        }); 
        
        arquivo.file = $("input[type=file][name=arquivo]");
        
        
        //local
        $_local = $("input[type=text][name=local]");
        local = $_local.val();
        if(!Cadastro.isEmpty(local))
        {
            arquivo.local = local;
        }
        else if($("#local").css("display")!= "none" )
        {
            Cadastro.setErroImput($_local, "");
            erros++;
        }
        
        //orientador        
        $_orientador = $("input[type=text][name=orientador]");
        orientador = $_orientador.val();
        if(!Cadastro.isEmpty(orientador))
        {
             arquivo.orientador = orientador;
        }
        else if($("#orientador").css("display")!= "none" )
        {
            Cadastro.setErroImput($_orientador, "");
            erros++;
        }
        
        //insntituição de ensino        
        $_instituicao_de_ensino = $("input[type=text][name=instituicao_de_ensino]");
        instituicao_de_ensino = $_instituicao_de_ensino.val();
        if(!Cadastro.isEmpty(instituicao_de_ensino))
        {
             arquivo.instituicao_de_ensino = instituicao_de_ensino;
        }
        else if($("#instituicao_de_ensino").css("display")!= "none" )
        {
            Cadastro.setErroImput($_instituicao_de_ensino, "");
            erros++;
        }                                               
        
        //titulo
        if(Cadastro.isEmpty(arquivo.titulo.val()))
        {
            Cadastro.setErroImput(arquivo.titulo, "Falta o titulo!");
            erros++;
        }
        else
        {
            arquivo.titulo = arquivo.titulo.val();
        }
                        
        //ano
        if(Cadastro.isEmpty(arquivo.ano.val()))
        {
            Cadastro.setErroImput(arquivo.ano, "Falta o ano!");
            erros++;
        }
        else if(!Cadastro.isNumero(arquivo.ano.val()))
        {
            Cadastro.setErroImput(arquivo.ano, "Ano dever ser um numero maior que zero!");
            erros++;            
        }
        else
        {                            
            arquivo.ano = arquivo.ano.val();
        }
        
        //tipo
        if(arquivo.tipo.val() == "null")
        {
            Cadastro.setErroImput(arquivo.tipo, "Falta o tipo do arquivo!");
            erros++;                
        }
        else
        {
            arquivo.tipo = arquivo.tipo.val();
        }
            
        //assuntos
        if(arquivo.assunto.length == 0)
        {
            Cadastro.setErroImput("input[type=text][name=assunto]", "Pelo menos um assunto dever ser escolhido!");
            erros++;                            
        }
        
        //autor
        if(arquivo.autor.length == 0)
        {
            Cadastro.setErroImput("input[type=text][name=autor]", "Pelo menos um autor dever ser escolhido!");
            erros++;                            
        }
        
        //arquivo
        if(arquivo.file.val() == "")
        {
            Cadastro.setErroImput(arquivo.file, "Faltou um arquivo!");
            erros++;
        }
        else
        {
          arquivo.file = arquivo.file.val();
        }
                                
        if(erros == 0)
        {
            return arquivo;
        }                                                
        return false;
    },
    setErroImput: function(input,msg)
    {
        $(input).addClass("inputTextErro");
        $(input).parent().parent().append('<label class="erro">'+msg+'</label>');                        
    },
    isEmpty: function (inputStr) 
    {         
        if ( null == inputStr || "" == inputStr || typeof inputStr == undefined) 
        {             
            return true; 
        } 
        
        return false; 
    },
    isNumero: function(numero)
    {
        var er = /^[0-9]+$/;
        return er.test(numero)  
    },    
    launchModal:function(msg)
    {
        $("#msg_popup").html(msg);
        $("#modalConfirm").fadeIn("slow");
    },
    cancelaModal: function()
    {
        $("#cancelarCadastro").click(function(){
            $("#modalConfirm").fadeOut("slow")
        });
    },
    arquivoSubmit: function()
    {
        $("#confimarCadastro").click(function()
        {
            Cadastro.showInfoSubmit();
            
            $("#cadastroLivro").ajaxSubmit
            ({
                type: "POST",
                url: urlBaseCompoent+'insert',
                dataType: "json",
                data: 
                {                                
                    arquivo: encodeURIComponent(JSON.stringify(Cadastro.arquivo))
                },
                success: function callback(data) 
                {      
                    data = data.content;                    
                    if(!data.error.success || data.error.success == 'undefined')
                    {
                        Cadastro.hideInfoSubmit();
                        alert("Erro:" + data.error.description);                        
                    }
                    else
                    {
                        Cadastro.hideInfoSubmit();                        
                        alert("Arquivo cadastrado com sucesso!");
                        $("#cadastroLivro").resetForm();
                        $($(".minus").parent().parent()).hide("slow", 
                        function()
                        {
                            $("#more_assunto").html("");
                            $("#more_autor").html("");
                        });
                    }
                },
                error: function () 
                { 
                    Cadastro.hideInfoSubmit();
                    alert("Erro: Internal Server Error");
                }
                
            });  
        })        
    },
    hideInfoSubmit: function()
    {
        $("#block_view").hide();
        $("#processando").remove();
        $("#img_load_save").hide();
        $("#confimarCadastro").show();
        $("#cancelarCadastro").show();
        $("#cancelarCadastro").click();
    },
    showInfoSubmit: function()
    {
        $("#confimarCadastro").hide();
        $("#cancelarCadastro").hide();
        $("#img_load_save").show();
        $("#content_btns").append('<span id="processando">Processando...</span>');
        $("#block_view").show();
    },
    autoCopletAssunto: function()
    {                                
        $( ".assunto" ).autocomplete(
        {
            source: function( request, response)
            {                                                                
                $.ajax({
                            url: urlBaseCompoent+"getassunto",
                            dataType: "json",
                            data: 
                            {                                
                                text: request.term
                            },
                            success: function( data ) 
                            {        
                                if(null != data)
                                {                                    
                                    response( $.map( data, function( item ) 
                                    {
                                        return {
                                                    label: item,
                                                    value: item
                                        }
                                    }));
                                }
                                
                            }                                                        
                        });
            },
            minLength: 2,
            delay : 50
        });        
    },
    autoCopletAutor: function()
    {
        $( ".autor" ).autocomplete(
        {
            source: function( request, response)
            {
                $.ajax({
                            url: urlBaseCompoent+"getautor",
                            dataType: "json",
                            data: 
                            {                                
                                text: request.term
                            },
                            success: function( data ) 
                            {                                
                                response( $.map( data, function( item ) 
                                {
                                    return {
                                                label: item,
                                                value: item
                                    }
                                }));
                            }
                        });
            },
            minLength: 2,
            delay : 50
        });        
    }
};